package com.ljl.module.system.domain;

import com.ljl.module.system.util.ResourceState;
import lombok.Data;

import java.util.Objects;

/**
 * 资源文件
 *
 * @author ljl
 */
@Data
public class Resource {

    /**
     * 资源唯一标识
     */
    private String uuid;

    /**
     * 封面
     */
    private String banner;

    /**
     * 源文件路径
     */
    private String basePath;

    /**
     * 视频路径
     */
    private String videoPath;

    /**
     * 音频路径
     */
    private String audioPath;

    /**
     * 输出路径
     */
    private String outputPath;

    /**
     * 转换进度
     */
    private Float mergeProcess;

    /**
     * 解密进度
     */
    private Float decodeProcess;

    /**
     * 手机缓存的视频文件
     */
    private boolean fromPhone;

    /**
     * 解密后的视频路径
     */
    private String decodeVideoPath;

    /**
     * 解密后的音频路径
     */
    private String decodeAudioPath;

    /**
     * 资源状态
     */
    private ResourceState state = ResourceState.NONE;

    /**
     * 错误信息
     */
    private String error;

    /**
     * 视频集id
     */
    private String groupId;

    /**
     * upz主名称
     */
    private String owner;

    /**
     * 视频集名称
     */
    private String groupTitle;

    /**
     * 视频标题
     */
    private String title;

    /**
     * 集数
     */
    private int page;

    /**
     * 只转换音频
     */
    private boolean onlyAudio;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Resource resource = (Resource) o;
        return Objects.equals(uuid, resource.uuid);
    }

    @Override
    public int hashCode() {
        return Objects.hash(uuid);
    }
}
